=begin

This file is part of the arena-ruby-sandbox project, http://arena-ruby-sandbox.googlecode.com

Copyright (c) 2009-2009 Roberto Dario Seminara <robertodarioseminara@gmail.com>

arena-ruby-sandbox is free software: you can redistribute it and/or modify
it under the terms of the gnu general public license as published by
the free software foundation, either version 3 of the license, or
(at your option) any later version.

arena-ruby-sandbox is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.  see the
gnu general public license for more details.

you should have received a copy of the gnu general public license
along with arena-ruby-sandbox.  if not, see <http://www.gnu.org/licenses/>.
=end


require "sandbox"

class Z
	def moo
		print "xxxx\n"
	end
end

class Y
	def prohibited_method
		print "prohibited_method\n"
	end
end
class X < Y
	def foo( a )
		print "invoking foo #{a.to_s}\n"
		
		return 9
	end
	def foo_block
		print "invoking foo_block\n"

		z = Z.new
		yield( z )
		z.moo
	end
end

s = Sandbox::Sandbox.new

x = X.new

s.service_provider = x
s.permit X

#s.run("foo_block{ print \"blah\n\" }")
code = File.open(ARGV[0]).read

#begin
	s.run(code)
#rescue Exception => s
#	print "exception: #{s.to_s}\n"
#end



